c++贪吃蛇代码(简易版)

2024-09-28 11:31:27 40 Admin
网站模板设计

 

#include

#include

#include

 

using namespace std;

 

bool gameOver;

const int width = 20;

const int height = 20;

int x

y

fruitX

fruitY

score;

int tailX[100]

tailY[100];

int nTail;

enum eDirection { STOP = 0

LEFT

RIGHT

UP

DOWN };

eDirection dir;

 

void Setup()

{

gameOver = false;

dir = STOP;

x = width / 2;

y = height / 2;

fruitX = rand() % width;

fruitY = rand() % height;

score = 0;

}

 

void Draw()

{

system("cls");

for (int i = 0; i < width="" +="" 2;="">

cout <>

cout <>

 

for (int i = 0; i < height;="">

{

for (int j = 0; j < width;="">

{

if (j == 0)

cout <>

if (i == y && j == x)

cout <>

else if (i == fruitY && j == fruitX)

cout <>

else

{

bool print = false;

for (int k = 0; k < ntail;="">

{

if (tailX[k] == j && tailY[k] == i)

{

cout <>

print = true;

}

}

if (!print)

cout < "="">

}

 

if (j == width - 1)

cout <>

}

cout <>

}

 

for (int i = 0; i < width="" +="" 2;="">

cout <>

cout <>

cout < "score:="" "="">< score=""><>

}

 

void Input()

{

if (_kbhit())

{

switch (_getch())

{

case 'a':

dir = LEFT;

break;

case 'd':

dir = RIGHT;

break;

case 'w':

dir = UP;

break;

case 's':

dir = DOWN;

break;

case 'x':

gameOver = true;

break;

}

}

}

 

void Logic()

{

int prevX = tailX[0];

int prevY = tailY[0];

int prev2X

prev2Y;

tailX[0] = x;

tailY[0] = y;

for (int i = 1; i < ntail;="">

{

prev2X = tailX[i];

prev2Y = tailY[i];

tailX[i] = prevX;

tailY[i] = prevY;

prevX = prev2X;

prevY = prev2Y;

}

switch (dir)

{

case LEFT:

x--;

break;

case RIGHT:

x++;

break;

case UP:

y--;

break;

case DOWN:

y++;

break;

default:

break;

}

if (x >= width) x = 0; else if (x < 0)="" x="width" -="">

if (y >= height) y = 0; else if (y < 0)="" y="height" -="">

 

for (int i = 0; i < ntail;="">

{

if (tailX[i] == x && tailY[i] == y)

gameOver = true;

}

 

if (x == fruitX && y == fruitY)

{

score += 10;

fruitX = rand() % width;

fruitY = rand() % height;

nTail++;

}

}

 

int main()

{

Setup();

while (!gameOver)

{

Draw();

Input();

Logic();

Sleep(10);

}

return 0;

}

Copyright © 悉地网 2018-2024.All right reserved.Powered by XIDICMS 备案号:苏ICP备18070416号-1